home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 326-350 / disk_348 / diseditor / dised.doc < prev    next >
Text File  |  1992-05-06  |  75KB  |  1,614 lines

  1.                                             disEd
  2.                                 THE dissidents TEXT EDITOR
  3.                                         by Jeff Glatt
  4.  
  5. NOTE: Set your editor's TAB width to 3 to read this document.
  6.  
  7. »»»»»»»»»»»»»»»»»»»»»»»»»»» TABLE OF CONTENTS »»»»»»»»»»»»»»»»»»»»»»»»»»
  8.  
  9.     1).  Introduction
  10.     2).  Entering Text
  11.     3).  Moving the Cursor
  12.     4).  Commands
  13.     5).  The Clipboard
  14.     6).  Case of Commands
  15.     7).  Repeating Commands
  16.     8).  Aborting Input
  17.     9).  Search Wildcards
  18.     10). Save/Load Files
  19.     11). Edit Buffer Size
  20.     12). Menus
  21.     13). Text Entry Modes
  22.     14). Word Wrap and Text Flow
  23.     15). Window Size
  24.     16). Multiple Editors
  25.     17). Keymaps
  26.     18). Function key Macros
  27.     19). Enabling Features within Macros
  28.     20). Load/Save Macros
  29.     21). Color Control
  30.     22). Printer Codes
  31.     23). Final Notes
  32.     24). Editor Versions
  33.     25). What's Available
  34.  
  35. »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» INTRODUCTION »»»»»»»»»»»»»»»»»»»»»»»»»»»
  36. 1). Introduction
  37.  
  38.     Yet another text editor! That's right, but with a few twists. This editor
  39. was written because the programmers at dissidents needed a good, basic text
  40. editor with numerous features, and it had to be a SMALL program to fit easily
  41. on a development disk. Besides handling source code for products like Midi
  42. Sample Wrench and SpeakerSim (there's the plug!), the editor needed features
  43. useful for writing magazine articles and such. (In fact, Jim is using it to
  44. write his Op Amp text book because of this editor's ability to handle large
  45. files well).
  46.  
  47.     Not being an EMACS fan, I decided to break with tradition and create an
  48. editor that used ALL of the keys on the amiga (plus the mouse), rather than
  49. limiting the command set to what was used back in the old days when terminals
  50. didn't have cursor keys. Never having been weaned on those kinds of aberrations,
  51. I decided to create a (hopefully) logical command set quite unlike the EMACS
  52. or WORDSTAR "standards", neither of which is very efficient. Nor did I want
  53. to sacrifice any lines of text for "status" or "command" areas.
  54.  
  55.     This editor is not loaded down with menus and requesters, like some of the
  56. bloated, heaving hulks of code that purport to be text editors at > 100K.
  57. Mouse jockeys may not like this, but for those who realize the true power of
  58. the keyboard, the method of issuing a command should seem very straight-
  59. forward.
  60.  
  61.     This is a RISC-based editor. (Reduced, Intuitive, Set of Commands). You
  62. won't find 4 different ways to move the cursor 1 character to the left. In-
  63. stead, there is a smaller set of only the most useful commands, and the
  64. facility to create more elaborate commands based upon these.
  65.  
  66.     Best of all, this text editor is really just a tiny front end over
  67. what is bound to be of some interest to developers, the dissidents text_ed
  68. library. Yes, ALL of the editing, display, file input/output, cursor posi-
  69. tioning, commands, etc. are being accomplished within a fully-reentrant,
  70. disk-based library. With just a half-dozen library calls, you can turn any
  71. window into a full-blown text editor with all of the features about to be
  72. described. You can "install" custom commands which "inherit" all of the
  73. qualities of built-in commands, plus can be used in the extensive Function
  74. Key macro processing that the library supports. If you ever wanted to write
  75. some application that needed an integrated editor (i.e. a compiler or assem-
  76. bler) but hated the thought of writing an editor, then this library is for you.
  77. Best of all, this library (like all dissidents libraries) is completely coded
  78. in 68000 assembly which is why it is less than 13K in size with all of these
  79. features! I employ a technique known as aggressive optimization (you aren't
  80. afraid of multiple entry points into a function, are you?)
  81.  
  82.     Let me start by describing the features of the dissidents disED program
  83. (which uses the text_ed library) since that is a simple example of using the
  84. library.
  85.  
  86.  
  87. »»»»»»»»»»»»»»»»»»»»»»»»»»»»» ENTERING TEXT »»»»»»»»»»»»»»»»»»»»»»»»»»»»
  88. 2). Entering Text
  89.  
  90.     The display is typical enough. When using the default WorkBench colors,
  91. an orange cursor shows where text is about to be entered. As you type keys,
  92. the characters appear in white on a blue background window. If you continue
  93. typing and eventually reach the window's right border, the display automati-
  94. cally scrolls to the left so that you ALWAYS see the text that you are
  95. entering.
  96.     This editor supports true TABS, and the TAB width is variable from 1 to 9
  97. spaces. The TAB key inserts 1 tab character when pressed.
  98.     Pressing the RETURN or ENTER keys ends the current line (wherever the
  99. cursor happens to be), and starts a new line.
  100.     The BACKSPACE key will erase the character BEFORE the cursor, moving all
  101. subsequent chars in that line over to the left. You can BACKSPACE at the first
  102. char of a line, thus combining the remaining chars with the preceding line.
  103.     The DEL key erases the character AT the cursor. If you DEL at the end of a
  104. line, the next line will be "pulled up" to join the current line.
  105.     Of course, the SHIFT key gives upper case letters when held down (as does
  106. CAPS LOCK), and the ALT keys yield special symbols.
  107.     That is all you have to know to enter text!
  108.  
  109.  
  110. »»»»»»»»»»»»»»»»»»»»»»»»»»»» MOVING THE CURSOR »»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  111. 3). Moving the Cursor
  112.  
  113.     ALL cursor movement is done with just the 4 cursor (arrow) keys, the SHIFT,
  114. ALT, and the mouse. That's all! Many editors have different command strokes to
  115. move the cursor around, but who needs that? When you get used to the idea that
  116. you can move the cursor anywhere via just 4 keys or the mouse, you will wonder
  117. why so many editors waste code on anything else.
  118.     The use of the cursor keys is meant to be as logical as possible. Pressing
  119. any one of the keys alone yields the SMALLEST movement in the indicated
  120. direction. For example, pressing the up arrow moves the cursor UP 1 line.
  121. Pressing the down arrow moves the cursor DOWN to the next line. Pressing the
  122. left or right arrows move the cursor over 1 character in either direction.
  123. Easy?
  124.   Holding down the SHIFT key while you press the arrows yields LARGER
  125. movements. For example, pressing the up arrow while holding the SHIFT moves the
  126. cursor UP to the previous page. SHIFT and down arrow scrolls to the next page
  127. in the document.  Pressing the left arrow with the SHIFT moves the cursor to
  128. the beginning of the next word. Pressing the right arrow with the SHIFT moves
  129. the cursor back to the beginning of the previous word.
  130.   Holding down the ALT key while pressing the arrows yields the LARGEST move-
  131. ments in the indicated directions. Pressing ALT and the up arrow moves to the
  132. beginning of the document. ALT and down moves to the end of the document.
  133. ALT and left arrow moves to the end of the current line. ALT and right arrow
  134. moves to the start of the current line.
  135.     So, remember. The arrow keys move the cursor in the indicated direction.
  136. Just the single arrow to move a tiny bit. Hold down the SHIFT to move a little
  137. farther. Finally, hold down the ALT to take that big step. You'll see that
  138. after 10 minutes or so, you'll hate editors that use keys other than the
  139. arrow keys to move the cursor.
  140.     Finally, you can use the mouse to move the cursor. Just point at the place
  141. where you want the cursor to be, and click the select (left) button.
  142.  
  143.  
  144. »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» COMMANDS »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  145. 4). Commands
  146.  
  147.     This editor has a variety of commands to edit, search, replace, delete,
  148. copy, cut, paste, format, save, and load blocks of text.
  149.     ALL commands use the CTRL (control) key in combination with one other
  150. key.    That's it!
  151.     For example, holding down the CTRL key and pressing the d key will delete
  152. the current line.
  153.     If any commands require further input from you, the title bar of the
  154. window turns into an appropriate prompt, and you enter text there. No bogus
  155. command lines at the bottom of the screen that need to be invoked by the
  156. ESC key. All error messages appear in the title bar of the window. Honest.
  157. You don't have to even poke at any damn requesters to make them go away and
  158. allow you to continue. Also, you can use the arrow keys along with the DEL
  159. and BACKSPACE keys to "edit" your command's input. No more "BACKSPACE over
  160. everything because you typed one letter wrong" command lines. Holding the CTRL
  161. key while pressing x will delete any input previously entered via the titlebar.
  162.  
  163.      The save and load operations use the dissidents FileIO requester library
  164. which is a public domain file requester with features too numerous to mention
  165. here. It also is written in assembly and is about 10K in size. Consult the
  166. Fred Fish catalog for docs or write to the address given later.
  167.  
  168.     Here is a list of the available commands and what they do:
  169.     Remember, you hold down the CTRL key and press the indicated key.
  170.  
  171. f key - FORWARD SEARCH
  172.           Search for a certain pattern starting AFTER the current position of
  173.              the cursor. A prompt will appear in the window title bar asking you
  174.              to type in the pattern. Just start typing and press return when you
  175.              have your search string. The editor will find the next occurence of
  176.              that pattern in your document, and place the cursor at it. If there
  177.              is no next occurence, the title bar will say:
  178.              "String not found"
  179.  
  180.             See the sections on SEARCH WILDCARDS and CASE OF COMMANDS.
  181.  
  182. b key     - BACKWARD SEARCH
  183.              This is just like the FORWARD SEARCH except that it looks for the
  184.              first occurence previous to the cursor position.
  185.  
  186. e key  - EXCHANGE
  187.              This searches for the first occurence of a pattern in your document
  188.              and replaces it with a second pattern. You will be prompted to enter
  189.              a search pattern (just like with the FORWARD SEARCH). Enter the text
  190.              and press return. Now, you will see a prompt in the title bar asking
  191.              you to enter the replacement pattern. Enter the text and press return.
  192.              The editor will start at the beginning of the document and look for
  193.              the first occurence of the search pattern. When it is found, the
  194.              text at that location will be replaced with the exchange pattern. If
  195.              the search pattern is not found at all, the title bar will say:
  196.              "String not found"
  197.              For example, you might want to exchange the word "Mac" with "Amiga".
  198.              You might.
  199.              If, when presented with the "Exchange with >" prompt, you enter no
  200.              characters and press return, any search pattern will be removed
  201.              without an exchange being made.
  202.  
  203.              See the REPEAT command.
  204.  
  205. q key  - QUERY EXCHANGE
  206.              This is the same as the EXCHANGE command except for two differences.
  207.              1). It can exchange ALL occurences of the search pattern throughout
  208.                   the file.
  209.              2). When it finds the search pattern, a message will appear in the
  210.                   title bar saying:
  211.  
  212.                   EXCHANGE (q for quit)? (y or n) >
  213.  
  214.                   The editor waits for you to type a key before exchanging. Press
  215.                   the N key if you want the editor to leave this occurence as is
  216.                   but continue searching for more. Press the Y key if you want the
  217.                   exchange to be made. Press the Q key if you don't want the ex-
  218.                   change, and you also want to stop the search.
  219.  
  220.     At this point, I want to mention that the editor saves your last search and
  221. replace string, so that if you invoke the F key again for example, not only
  222. will the "Search String >" prompt appear, but so will your last input. Simply
  223. hit return if you want the same pattern. This is true even if you invoke sev-
  224. eral other commands in the interim. If you don't want the same string, simply
  225. hold down the CTRL key and press x to get rid of the old input. As if that
  226. wasn't enough, check out this command:
  227.  
  228. g key   - REPEAT COMMAND
  229.                 This repeats the last command. If the last command required you
  230.                 to enter any text via the title bar, this command will automa-
  231.                 tically use that input INSTEAD of prompting you again.
  232.                 CTRL-G works on ALL commands except the ENTER CTRL and UNDO
  233.                 commands. As a further note, when you CTRL-G the EXCHANGE command,
  234.                 it does not start the exchange from the beginning of the file.
  235.                 Rather, it starts from the current cursor position.
  236.  
  237. d key   - DELETE LINE
  238.                 This deletes the entire line upon which the cursor is positioned.
  239.  
  240. r key   - REMOVE TO END
  241.                 This deletes all characters at and after the cursor up to the end
  242.                 of the line.
  243.  
  244. l key   - LINE JUMP
  245.                 When invoked, a prompt appears in the title bar asking for the line
  246.                 number to jump the cursor to. Type that in and press RETURN.
  247.  
  248. SPACE   - DELETE SPACES
  249.                 When you press SPACE while holding the CTRL key, all spaces at the
  250.                 cursor up to the next non-space will be deleted. If the cursor is
  251.                 not on a space, there is no effect.
  252.  
  253. TAB      - TAB CONVERSION
  254.                 When you press TAB while holding the CTRL key, as much whitespace
  255.                 as possible in    the document will be replaced by TAB characters,
  256.                 (based on the TAB WIDTH setting). This can greatly reduce the size
  257.                 of a file without changing it's appearence, and is useful for
  258.                 compacting source code that was written without TABS. If you hold
  259.                 down the SHIFT along with CTRL-TAB, then all whitespace will
  260.                 be replaced with SPACE characters. This is useful if your printer
  261.                 does not have a variable TAB width, and a certain document was
  262.                 written with a different TAB width than your printer. Most printers
  263.                 support at least a TAB width of 8 chars.
  264.  
  265. s key      - STATUS
  266.                 This simply presents some information in the window title bar such
  267.                 as the current line number, the total # of lines in the file, and
  268.                 how much room there is left in the edit buffer (i.e. how many more
  269.                chars can be entered.)  Holding down the SHIFT key while pressing
  270.                 CTRL-s will display the settings for LEFT and WRAP (right) MARGINS
  271.                 as well as PAGE SCROLL and TAB WIDTH.
  272.  
  273. k key   - CASE FLIP
  274.                 This flips the case of the letter at the cursor. For example, if
  275.                 the letter was a 'b', it is changed to a 'B'.
  276.  
  277. u key  - UNDO
  278.                 This undoes any edits to the current line, placing the cursor at
  279.                 the start of the line. Please note that this doesn't undo commands.
  280.                 It simply undoes any changes you may have typed in since moving the
  281.                 cursor onto this line.
  282.  
  283. \ key  - DOS command
  284.                 When invoked, this asks you to type in a line of text just as you
  285.                 might from the CLI, and executes that line in the CLI window from
  286.                 which you may have invoked the editor. This is useful for invoking
  287.                 an assembler or other program from within the editor. Just like
  288.                 with the search/exchange strings, your input is remembered for
  289.                 the next time you invoke this command, or use CTRL-G afterwards.
  290.  
  291. = key  - ENTER CTRL
  292.                 This editor supports entering (and viewing) control chars. When
  293.                 you invoke the CTRL = combo, the editor awaits your NEXT keystroke
  294.                 to be entered as a CONTROL code. The control codes are chars
  295.                 @, a to z, [, \, ], ^,  and _ for ascii values hex $00 to $1F.
  296.                 For example, an ESC character is hex $1B. You would enter this
  297.                 by pressing the CTRL and = keys, releasing those keys, and follow-
  298.                 ing up with a press of the [ key.
  299.                 A control code is displayed in reverse video. That is, instead
  300.                 of being a white char on a blue background, the char appears as a
  301.                 blue char on a white background. LineFeeds (J) and TABS (I) are
  302.                 always presented as such and never displayed as a visible char. 
  303.                 So, to enter any control code, press the CTRL and =, then follow
  304.                 with the appropriate character.
  305.                 See the PRINTER CODES section.
  306.  
  307. ` key  - FILTER CTRL
  308.                 This is used to remove control codes from the document. You will
  309.                 be prompted to enter the one char (@, a to z, [, \, ], ^, or _).
  310.                 The editor will filter the first occurence in the document.
  311.                 Of course, you may use CTRL-G to repeat the command.
  312.                 You cannot filter line feeds (RETURNS) from the document.
  313.  
  314. p key  - PARAGRAPH FORMAT
  315.                 This reformats lines from the current line to the end of the
  316.                 paragraph according to the current LEFT and WRAP MARGIN settings.
  317.                 After some deleting of characters, you may want to reformat an
  318.                 entire paragraph. Move the cursor to the line where you wish the
  319.                 reformatting to start. Press CTRL-p. If you start on the first
  320.                 line of a paragraph and it is indented beyond the subsequent lines,
  321.                 it may be necessary to format the first line and then move to the
  322.                 second line of the paragraph and invoke CTRL-p again. This command
  323.                 is also useful if you change the LEFT or WRAP margin settings, and
  324.                 wish to reformat a paragraph to these new margins.
  325.                 See WORD WRAP AND TEXT FLOW.
  326.  
  327. v key - UPDATE MENU
  328.                 This updates the OPTIONS menu to indicate the state of certain
  329.                 options (flags).
  330.                 See the MACRO section.
  331.  
  332. z key - SET MARGINS
  333.                 Pressing CTRL-z sets the LEFT MARGIN to the current position of
  334.                 the cursor. Holding down SHIFT while pressing CTRL-z sets the
  335.                 WRAP MARGIN to the current cursor position. See the MENUS section.
  336.  
  337.  
  338. »»»»»»»»»»»»»»»»»»»»»»»»»» THE CLIPBOARD »»»»»»»»»»»»»»»»»»»»»»»»»
  339. 5). The Clipboard
  340.  
  341.     The editor has a clipboard to which you can cut or copy blocks of text
  342. from your document. You can also paste the contents of the clipboard at any
  343. point(s) in the document. You can even save the contents of the clipboard to
  344. disc, or load a file into the clipboard, thus importing/exporting text into
  345. your current document.
  346.     To cut or copy a block of text from the document to the clipboard, you need
  347. to define the start and end of the block. You do this using the cursor and the
  348. mark. The cursor is visible, but the mark is not (unless you turn on the
  349. Mark Display menu item). To set the mark, move the cursor to the place you want
  350. the clip to start (or end), and use the MARK SET command. You do this by
  351. holding the CTRL key (as with all commands) and pressing m.
  352.  
  353. m key  - MARK SET
  354.                 Sets the mark at the present position of the cursor. You will see
  355.                 the message "Block Marked" in the title bar. (See Mark Display
  356.                 for more information.)
  357.  
  358.     Now, move the cursor to where you want the block to end (or start). Remember
  359. to use the 4 cursor keys or mouse to move the cursor. Do not set the cursor
  360. on the same character as where you set the mark.
  361.  
  362.     At this point, you can copy or cut the block to the clipboard. Copy copies
  363. the text to the clipboard without altering the document. Cut copies the text
  364. and removes it from the document.
  365.  
  366. y key  - COPY TEXT
  367.                 Copies text between the mark and the cursor to the clipboard
  368.                 without altering the document. You will see "Block copied to Clip"
  369.                 if successful.
  370.  
  371. x key  - CUT TEXT
  372.                 Cuts text between the mark and the cursor to the clipboard
  373.                 while removing it from the document.
  374.  
  375.     Now that you have text in the clipboard, you can move the cursor to any
  376. place in the document and insert the contents of the clipboard at that position.
  377.  
  378. i key  - INSERT CLIP
  379.                 This inserts the contents of the clipboard at the position
  380.                 of the cursor. Contents of the clipboard does not change.
  381.  
  382.     You can move to other areas of the document and continue to insert the
  383. clipboard text.
  384.  
  385. o key  - OTHER POSITION
  386.             Swaps the current position with the mark so that you can easily
  387.             jump back and forth between 2 points in a document.
  388.  
  389.     There are a few things that you can do to the text in the clipboard.
  390.  
  391. h key  - LOWER CLIP
  392.                 Changes all upper case letters in the clipboard to lower case.
  393.  
  394. H key  - UPPER CLIP
  395.                 Changes all lower case letters in the clipboard to upper case.
  396.  
  397.     Note that the UPPER CLIP command involves holding both the CTRL and the
  398. SHIFT keys while pressing the h key. For most commands, it doesn't matter if
  399. you invoke them in upper or lower case (i.e. with or without the SHIFT), but
  400. a few commands do support a separate function for the SHIFTED version.
  401.  
  402.  
  403. »»»»»»»»»»»»»»»»»»»»»»»»»»»» CASE OF COMMANDS »»»»»»»»»»»»»»»»»»»»»»»»»»»
  404. 6). Case of Commands
  405.  
  406.     As mentioned, it usually doesn't matter if a command is invoked with the
  407. SHIFT key held, but a few commands take on a new twist with the SHIFT.
  408.     Normally, string searches such as in the FORWARD SEARCH, BACKWARD SEARCH,
  409. EXCHANGE, and QUERY EXCHANGE are case sensitive. That is, if you were search-
  410. ing for "Duck" then the editor would not recognize "duCK" as being the same.
  411.     When you invoke any of the mentioned search commands with the SHIFT key
  412. held down, then the search becomes case-insensitive. "Duck" matches "duCK".
  413.     Having the CAPS LOCK key on will not SHIFT commands. You must explicitly
  414. hold down the SHIFT key when that is what you desire.
  415.  
  416.  
  417. »»»»»»»»»»»»»»»»»»»»»»»»»» REPEATING COMMANDS »»»»»»»»»»»»»»»»»»»»»»»»»»»»
  418. 7). Repeating Commands
  419.  
  420.     The last command that you issued can always be repeated once with the CTRL-G
  421. command.
  422.     Alternately, there is a way to specify how many times you want a command
  423. to be repeated when you issue the command. Simply hold down the ALT key along
  424. with the CTRL key combo and a prompt will appear in the title bar:
  425.  
  426.     Number of iterations >
  427.  
  428.     Type in the number of total times to issue the command and press return.
  429. The command will carry out as normal. If you need to enter input, you will
  430. need to do so only on the first repeat. Subsequent repeats will use the same
  431. input. For example, you might want to replace the first five occurences of
  432. "computer" with "disaster".
  433.     Invoke the EXCHANGE command by pressing CTRL, ALT, and the e key. The
  434. "Number of iterations >" prompt will appear. Type in 5 and hit RETURN. Next
  435. the editor will prompt for the search string. Enter "computer" (minus the
  436. quotes) and press RETURN. Finally, the editor will ask for the exchange
  437. string. Type "disaster" and press RETURN. The editor will then replace the
  438. first 5 occurences of "computer" with "disaster".
  439.     This method of specifying repeats by holding the ALT key will work with
  440. all commands except CTRL-G, CTRL-U, CTRL-=, or CTRL-Q.
  441.     You can even CTRL-G a repeated command in which case the whole process
  442. will be repeated, but without needing any input at all.
  443.     If the number of iterations cannot be satisfied (i.e. you ask to repeat
  444. the FLIP CASE command 6,000,000 times), the command will execute as many times
  445. as possible, and then stop.
  446.  
  447.                                         >>>> IMPORTANT <<<<
  448.  
  449.     You can abort a repeating command at any time by pressing the left (select)
  450. mouse button anywhere inside the disED window.
  451.     When a command is repeating, the display is not updated until all possible
  452. repeats have completed. In other words, if you repeat the DELETE LINE command
  453. 10 times, you won't see 10 lines disappear one at a time. Rather, the 10 lines
  454. will disappear simultaneously since disEd won't update the display until after
  455. the 10th line is deleted. Bear this in mind for commands that may take a while
  456. to complete such as exchanging a word throughout a document. It will appear
  457. as if disEd is doing nothing even though it may actually be performing
  458. exchanges. When completed, the titlebar might read "String not found" and the
  459. display would then be updated with the cursor at the start of the document or
  460. at the last exchange.
  461.  
  462.  
  463. »»»»»»»»»»»»»»»»»»»»»»»» ABORTING TITLE BAR INPUT »»»»»»»»»»»»»»»»»»»»»»»»»
  464. 8). Aborting Input
  465.  
  466.     If the editor prompts you for input via the title bar and you wish to abort
  467. the command at that point, press the ESC key.  Macros and repeating commands
  468. are aborted by pressing the right mouse button.
  469.  
  470.  
  471. »»»»»»»»»»»»»»»»»»»»»»»»»» SEARCH WILDCARDS »»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  472. 9). Search Wildcards
  473.  
  474.     When typing in a string at the "Search String >" prompt, you may use a
  475. special wildcard character, "*". The asterisk means that any character will
  476. match. For example, say that you typed the following string for the search:
  477.  
  478.     the b*g
  479.  
  480.     All of the following would match:
  481.  
  482.     the bug
  483.     the bag
  484.     the big
  485.  
  486.     You can place several asterisks in a search string, even in a row. For
  487. example,
  488.  
  489.     t**k
  490.  
  491.     could match these:
  492.  
  493.     tank
  494.     talk
  495.     took
  496.  
  497.     Because the * character is used as a wildcard, you should only use it in
  498. this way when typing your search string.
  499.  
  500.  
  501. »»»»»»»»»»»»»»»»»»»»»»»»»»» FILE SAVE/LOAD »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  502. 10). Save/Load Files
  503.  
  504.     The file SAVE AS and LOAD features are accessed via the Project Menu. You
  505. can save the contents of the clipboard or the edit buffer (your document).
  506. You can also load a file into the clipboard or edit buffer. (When loading
  507. into the edit buffer, the macro keys and all other config file settings
  508. remain until you load another config file or exit disED.)
  509.     These operations bring up the dissidents FileIO requester. There are many
  510. features that are fully described in documentation on previous Fish discs,
  511. but briefly...
  512.  
  513.     You select which disk you want to examine by clicking on the Next Disk
  514. button until the name of the disk appears in the DiskName string gadget
  515.     OR
  516. You press the right mouse button to reveal the list of available devices
  517. and click the left mouse button over the desired name.
  518.     OR
  519.     You click on and type the name into the DiskName gadget.
  520.  
  521.     Drawer names have a »» before them. Click on the name to enter the drawer.
  522.     The "Previous" drawer exits a drawer.
  523.  
  524.     You select a filename by double-clicking on the desired name
  525.     OR
  526.     You type the name into the FileName gadget.
  527.  
  528.     The FileIO requester has numerous features that you can customize (per
  529. application) via the 10 function keys while it is open, but we won't go into
  530. that here. For more information, contact dissidents.
  531.  
  532.     The SAVE menu item will simply save the edit buffer with the same name as
  533. you last used when saving the edit buffer. The file requester is not invoked.
  534.  
  535.     If you initially run DisED from a CLI, it takes one argument: the name of
  536. the file to load. This then becomes the name that SAVE uses until you save the
  537. edit buffer with a new name using SAVE AS.
  538.  
  539.     From Workbench, if you double-click on an Icon for a file that was made
  540. using disED, the version of disED you used to make that file will be invoked,
  541. and the file will be automatically loaded.
  542.  
  543.  
  544. »»»»»»»»»»»»»»»»»»»»»»»»» SIZE OF EDIT BUFFER »»»»»»»»»»»»»»»»»»»»»»»»
  545. 11). Edit Buffer Size
  546.  
  547.     A document is entirely loaded into memory, and all edits that you make are
  548. performed on this copy in memory. If you wish to make these edits permanent,
  549. you must save the file (via SAVE or SAVE AS File). The memory that the document
  550. is loaded into is called the edit buffer.  When started, disED obtains a
  551. default edit buffer whose size is set to a percentage of available memory, or
  552. the setting within a config file.  There is a menu item that allows you to
  553. resize the buffer (i.e. perhaps make it larger if you fill it up). Whenever a
  554. document is loaded, disED tries to insure that the buffer is large enough for
  555. the text plus room for a reasonable number of edits.  A good approach is to
  556. set the edit buffer size to the average size of the documents that you edit
  557. plus a little more. For example, if your documents tend to be about 50,000
  558. bytes, set the edit buffer size to 60,000, and save a config file. This will
  559. insure that disED uses only as much memory as it truly needs, and makes multi-
  560. tasking with disED quite easy.  Note that if you then load a document larger
  561. than the buffer size, disED will automatically adjust its buffer larger. In
  562. the event that you see the message "File truncated" when loading a file, this
  563. means that disED could not find a memory chunk large enough to load the entire
  564. document, and has truncated it.  You will have to close down other applications
  565. and reload the document.
  566.  
  567.  
  568. »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» MENUS »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  569. 12). Menus
  570.  
  571.     The menu items to LOAD and SAVE were previously mentioned.
  572.  
  573. CLEAR - Clears out all of the text in the edit buffer (but not the clipboard).
  574.  
  575. QUIT  - Exits the program. If you made any changes to the document, the editor
  576.           will ask if you really want to quit. Answer no if you wish to SAVE
  577.           the edit buffer first.
  578.             Alternately, the ESC key will exit the program. If any changes have
  579.             been made, the file will be saved using its last saved name without
  580.             requiring your response.
  581.  
  582. RESIZE EDIT -  Normally, the edit buffer is set to a percentage of available
  583.                     memory or the setting within a config file. If you wish to
  584.                     resize it (maybe make it larger if you fill it up), do so with
  585.                     this command. Enter the new size (in bytes). Always save your
  586.                     present text before using this item, even though the editor will
  587.                     try to copy your present text into the new edit buffer.
  588.  
  589. TAB WIDTH  -    Sets the true TAB width from 1 to 9 spaces. Defaults to 8.
  590.  
  591. PAGE SCROLL -    Sets the number of lines to scroll when the SHIFT-UP or SHIFT-
  592.                     DOWN arrows are pressed. Defaults to 23 lines scroll per page.
  593.  
  594. LEFT MARGIN    -    Sets the number of leading spaces at the beginning of each line.
  595.                     (i.e. the amount to initially indent each line). If LEFT MARGIN
  596.                     is set to 0, then no leading spaces appear on each line. You
  597.                     may always backspace over to the window's left edge despite
  598.                     any LEFT MARGIN setting. MAX value is 127.
  599.  
  600. WRAP MARGIN -  Sets the number of characters on each line before word wrap
  601.                     occurs. Only effective when WORD WRAP is on. This setting
  602.                     includes the LEFT MARGIN. For example, If Left Margin is set to
  603.                     5 and Wrap Margin is 20, you can fit 15 characters on a line
  604.                     before word wrap will occur. MAX value is 253, but the WRAP
  605.                     MARGIN cannot be less than the LEFT MARGIN.
  606.  
  607. PROTECT     -  When this is on (checked) a file is protected from being
  608.                     edited. New text cannot be entered, nor can any command be
  609.                     issued that will alter the document.
  610.  
  611. SAVE/LOAD
  612. CONFIG        -    Used to save and load a configuration file. This is a file that
  613.                     stores "settings" such as the TAB width so that when disED is
  614.                     run, it will automatically use your customized settings saved in
  615.                     a config file. BOOT DISK will save the config file to the disk
  616.                     that you booted from. CHOOSE DIR allows you to save a config
  617.                     file anywhere under any name. When disED starts up it first
  618.                     looks for a file named DisConfig in the current directory. If
  619.                     there is none, it then looks for the same name on your boot
  620.                     disk. In this way, you can have a generic config file named
  621.                     DisConfig on your boot disk which can be overwritten by 
  622.                     DisConfig files in certain directories. (You may want WORD WRAP
  623.                     for writing letters but not for writing programs.) You can even
  624.                     save config files not named DisConfig, in which case disEd will
  625.                     ignore them until you specifically load one via CHOOSE DIR under
  626.                     LOAD CONFIG. You can load a config file at any time. The CHOOSE
  627.                     DIR item uses the FileIO requester to obtain your filename.
  628.  
  629.                     Settings that the config file saves are TAB width, Page Scroll,
  630.                     all 30 Function key macros, text entry modes, block search, mark
  631.                     display, word wrap, window size/location, screen colors,
  632.                     margins, auto-indent, the rebinded keys, protect, hide codes,
  633.                     no icon, extra wide, and the last DOS command executed in the
  634.                     editor. Also saved is the FileIO's match string, tooltypes,
  635.                     and flags (settings).
  636.                     Before saving a config file, you should set up the editor
  637.                     exactly as you would like it to initially open by setting up
  638.                     all of the preceding parameters, and setting up the file
  639.                     requester with the desired features.
  640.  
  641. MARK DISPLAY - Highlights the lines inbetween the mark and the cursor so
  642.                     that you can see what text is involved. With this on, the
  643.                     CTRL-M command toggles the mark on and off. You will see
  644.                     "Block Cleared" when the mark is removed.
  645.  
  646. BLOCK SEARCH    - This limits searches to only those characters inbetween the
  647.                         mark and the cursor, rather than searching the entire file.
  648.                         Use this if you want to confine searches to a certain block
  649.                         of text, such as searching only 1 line or 1 paragraph.
  650.                         BLOCK SEARCH also effects the EXCHANGE, QUERY EXCHANGE, and
  651.                         FILTER CTRL commands so that you can also confine exchanges
  652.                         to the text inbetween the mark and cursor.
  653.                         To use this, set the mark where you want the start (or end)
  654.                         point. Now, move the cursor to the end (or start) point by
  655.                         clicking the mouse or using the cursor keys. Make sure that
  656.                         BLOCK SEARCH is on. Now when you issue any search or ex-
  657.                         change command, it will only effect this text, even if you
  658.                         repeat the command 6,000,000 times.
  659.  
  660. WORD WRAP    - Automatically starts a newline when a line's length exceeds the
  661.                     Wrap Margin. It breaks the line inbetween two words, placing
  662.                     the second word on the new line with the cursor at the end.
  663.  
  664. AUTOINDENT    - When you press RETURN, the next line is automatically indented
  665.                     by the same amount as the previous line. This is useful for
  666.                     programming languages such as C. The ENTER key (on the numeric
  667.                     keypad) normally functions like the RETURN key except when
  668.                     AUTOINDENT is on. In this case, the ENTER key does not auto-
  669.                     indent, so that you have the option of making a new line
  670.                     not auto-indent even in this mode.
  671.                         When LEFT MARGIN is not zero, a line will always be indented
  672.                     by at least that amount.
  673.  
  674. EXTRA WIDE  - When enabled, the lines of text on the display are separated
  675.                   more, so that it may be easier to read a "dense" document.
  676.                   Note that this only affects the display. The document is com-
  677.                   pletely unchanged. (i.e. a document printed out will look the
  678.                   same regardless of the EXTRA WIDE setting). In EXTRA WIDE mode,
  679.                   the display will flash when scrolling text into view.
  680.                   See PRINTER CODES.
  681.  
  682. NO ICON        - When saving a file, disED usually saves an icon for WB users.
  683.                   With NO ICON on, disED won't save an icon when it saves files.
  684.                   disED never saves icons for config files, saved clips, or macros
  685.                   - just the viewed text file.
  686.  
  687.  
  688. »»»»»»»»»»»»»»»»»»»»»»»»» TEXT ENTRY MODES »»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  689. 13). Text Entry Modes
  690.  
  691.     Normally, disED is in Insert mode. What this means is that when you enter
  692. new text, subsequent chars are pushed to the left to make room for the new
  693. text.
  694.     disED also supports OverStrike mode. In this mode, subsequent chars are
  695. not pushed over. Instead, the new text overwrites any subsequent chars, for-
  696. ever banishing them to computer hell, where everyone uses CP/M.
  697.     disED implements a 3rd mode, ExtendedOverStrike. In this mode, new text
  698. only overwrites to the end of a word, then temporarily kicks into insert mode
  699. so that chars append to the word instead of overwriting the next word. This
  700. mode is ideal for editing documents since you can quickly correct a misspelled
  701. word or add text without clobbering subsequent words. Note that
  702. ExtendedOverStrike supercedes OverStrike Mode.
  703.     Of course, the 4 arrow keys and mouse operate the same in all 3 modes.
  704.  
  705.  
  706. »»»»»»»»»»»»»»»»»»»»»»»» WORD WRAP AND TEXT FLOW »»»»»»»»»»»»»»»»»»»»»»»
  707. 14). Word Wrap and Text Flow
  708.  
  709.     disED implements "text flow" when using word wrap. What this means is that
  710. instead of just flopping the overflowing text onto a new line, disED reformats
  711. the entire paragraph to best "fit" inside of your margins. You MUST separate
  712. paragraphs in either of two ways:
  713.  
  714.     1). Indent the first line of the paragraph past the LEFT MARGIN.
  715.     2). Place a blank line before the paragraph (i.e. press an extra RETURN
  716.          before starting a new paragraph).
  717.  
  718.     Because of "text flow", you can set the WRAP MARGIN to the desired number
  719. of characters per line, turn on WORD WRAP, and only have to press RETURN at
  720. the beginning of a new paragraph. You don't have to press return after every
  721. line because disED will insure that each line doesn't exceed the MARGIN, and
  722. that the paragraph is formatted properly. This is true even if you later add
  723. text in the middle of a paragraph.
  724.     An efficient approach for writing documents, letters, reports (as opposed
  725. to writing program code), is to set up WORD WRAP, and type in your text without
  726. bothering with corrections. Then, enable Extended Overstrike and move the
  727. cursor to where you want to add or change text. Type the new text. Extended
  728. Overstrike will insure that you don't clobber the next word, and "text flow"
  729. will reformat your paragraph automatically. If any corrected misspelling is
  730. shorter than the original mistake, use the DEL key to remove unwanted
  731. characters, and then issue the reformat paragraph command.
  732.     As a further suggestion, you might program a macro key to insert a RETURN
  733. followed by SPACES or TABS. You can then start a new paragraph by pressing this
  734. macro key once.
  735.     Because of the way in which WORD WRAP is implemented, you should keep lines
  736. shorter than 128 characters. Two adjacent sentenses whose total length is >
  737. 256 characters will wrap into more than 2 sentenses.
  738.  
  739.  
  740. »»»»»»»»»»»»»»»»»»»»»»»»»»»» WINDOW SIZE »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  741. 15). Window Size
  742.  
  743.     disED has a window sizing gadget in the bottom right corner so that you
  744. can resize the window to any dimensions. The appropriate amount of text will be
  745. shown in the window, while still retaining the feature of being able to scroll
  746. to any text offscreen whether it be up, down, left, or right.
  747.  
  748.  
  749. »»»»»»»»»»»»»»»»»»»»»»» MULTIPLE EDITORS/WINDOWS »»»»»»»»»»»»»»»»»»»»»»»
  750. 16). Multiple Editors
  751.  
  752.     When a disEd editor is started, its number is displayed first in the title
  753. bar of its window. For example, the first editor you start will have a
  754.  
  755.     1 >
  756.  
  757. in the title bar. If you run another invocation of disED, that editor's title
  758. bar will read:
  759.  
  760.     2 >
  761.  
  762. and so on. You can send the clipboard of one editor to another using the
  763. TRANSFER CLIP command (CTRL-t). A prompt will be displayed asking you for the
  764. editor number to send the clipboard to. Type in the number and press return.
  765. (A default editor of 1 initially appears. Use CTRL-x to erase this if you
  766. desire another editor). The clipboard will be transferred to the other editor.
  767. The sending editor will then have an empty clipboard, and the receiving editor's
  768. clipboard will have the transferred contents.
  769.     Do not attempt to transfer the clipboards of two editors to each other
  770. simultaneously!
  771.     The disED windows are simple refresh so that memory requirements are kept
  772. to a minimum at all times.
  773.  
  774.  
  775. »»»»»»»»»»»»»»»»»»»»»»»»»»»»»» KEYMAPS »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  776. 17). Keymaps
  777.  
  778.     disED will use whatever keymap that your system is setup for, except that
  779. the function and cursor keys always operate as described in this document.
  780.  
  781.  
  782. »»»»»»»»»»»»»»»»»»»»»»»»»» FUNCTION KEY MACROS »»»»»»»»»»»»»»»»»»»»»»»»»»»
  783. 18). Function key Macros
  784.  
  785.     One of the most unique features of disED is the way in which the function
  786. key macros work. You can tie a whole series of commands to a single function
  787. key, as well as move the cursor, enter text into the document, and access
  788. menu items all within the same macro. You can save and load individual macros,
  789. and edit macros.
  790.  
  791.     There are 30 macros total: The 10 Function keys alone, the 10 Function
  792. keys with the SHIFT key, and the 10 Function keys with the ALT key.
  793.  
  794.     To set up a function key, hold the CTRL along with the combo desired.
  795. For example, you might press the CTRL, SHIFT and F1 to set up the first of
  796. the 10 SHIFTED function keys.
  797.  
  798.     The window title bar will read "Function String >". You are now going to
  799. enter a series of characters to describe the operation, and then hit return.
  800. If there was already a macro defined for this key, it will be shown so that you
  801. can edit it or enhance it. (You can delete all chars with CTRL-x to clear
  802. the function key of any macro, or just press ESC to leave it as is).
  803.  
  804.     Let me first give you a general description of how to define the macro,
  805. and then some examples.
  806.     Cursor movement is defined by letters inbetween two brackets [ ].
  807.     A Menu selection is defined by numbers inbetween two braces { }.
  808.     Text to be inserted into the document (or used as an argument for
  809.     a command) is in double quotes " ".
  810.     Commands (CTRL key combos) are simply letters not inside of any delimiters.
  811.     A ? causes the macro to get input from the user.
  812.     The < > keys can be used to loop parts of a macro.
  813.  
  814.     Here are the letters to use to describe cursor movements.
  815.  
  816. a  - UP arrow            e  - SHIFTED UP            i    - ALT UP
  817. b  - DOWN arrow        f  - SHIFTED DOWN            j    - ALT DOWN
  818. c  - RIGHT arrow        g    - SHIFTED RIGHT        k    - ALT RIGHT
  819. d  - LEFT arrow        h    - SHIFTED LEFT            l    - ALT LEFT
  820.  
  821.     Now let's define a simple macro that moves the cursor down one line, and
  822. then to the end of the line. Make sure that you are not in OverStrike mode
  823. for these examples.  Press the CTRL and F1 key to define function key 1. 
  824. Enter the following text (no spaces) and press return.
  825.  
  826.     [b][k]
  827.  
  828.     Notice that I put a "b" inbetween brackets. The brackets mean that this is a
  829. cursor movement. The b stands for the DOWN arrow key without the SHIFT or ALT.
  830. That moves our cursor down one line. Next is a "k" inbetween brackets. Once
  831. again, the brackets indicate a cursor movement. The k stands for the RIGHT
  832. arrow key with ALT held down. This moves us to the end of the line, remember?
  833.     Now, when you press the F1 key, the cursor should move down 1 line, and to
  834. the end of the line. (To test, you should have a document loaded with the cursor
  835. not on the last line since it cannot move where there aren't entered characters.)
  836.     When you have several cursor movements in a row, you can place them all
  837. within one set of brackets. This makes for smaller, more efficient macros.
  838. Thus the preceding example would abbreviate to this:
  839.  
  840.     [bk]
  841.  
  842.     You should never have spaces (outside of quotes) in a function key macro
  843. (unless you mean to execute the DELETE BLANKS command).
  844.     Now let's add to our macro. Press CTRL and F1. You should see the macro that
  845. we just defined. Using the cursor keys, abbreviate it by removing the extra
  846. inside brackets. Now let's insert the word "Hello!" after we move the cursor
  847. down one line and to the end of the line. To insert text, we inclose it in
  848. quotes. Here's our new macro:
  849.  
  850.     [bk]"Hello!"
  851.  
  852.     Press return to enter the macro, then move the cursor to the start of your
  853. document. Press F1. Did the cursor move down and to the end of the 2nd line,
  854. then write Hello! ?
  855.     Finally, let's move the cursor to the start of the next line by adding a
  856. RIGHT cursor movement at the end of the macro (i.e. by then the cursor will be
  857. at the end of the line). Then we'll execute the FLIP CASE command. The FLIP
  858. CASE command is the letter k. Notice that I don't put the letter in quotes,
  859. brackets, or braces because it is intended as a command. Invoke the setup of F1
  860. with CTRL and F1, and type:
  861.  
  862.     [bk]"Hello!"[c]k
  863.  
  864. Press return, position to the start of the file and press F1. See how it works?
  865. It should have flipped the case of the first letter on the 3rd line (assuming
  866. that it was a letter).
  867.  
  868.     Now then, maybe you wanted to invoke the FLIP CASE command 11 times. You
  869. could do this:
  870.  
  871.     [bk]"Hello!"[c]kkkkkkkkkkk
  872.  
  873. but since any command can be preceded by a number telling how many times to
  874. execute (repeat), you'll do this:
  875.  
  876.     [bk]"Hello!"[c]11k
  877.  
  878.     In fact, you can place a number in front of any cursor movement as well.
  879. Try to guess what the following macro does:
  880.  
  881.     " = 5"[4d]"3 + 2"[5d3b]
  882.  
  883.     Did you guess that the chars " = 5" (minus the quotes) were inserted wherever
  884. the cursor happened to be, then we backed up 4 chars and inserted "3 + 2" in
  885. front of the " = 5", then moved the cursor back to where we started and down
  886. 3 lines? Analyze this example carefully before moving on.
  887.  
  888.     Some commands need input, such as the FORWARD SEARCH. In a macro, you place
  889. the input for the command directly after the command, and in quotes. You MUST
  890. supply all necessary input directly in the macro (unless you substitute a ?).
  891. The FORWARD SEARCH (f key) command needs a search pattern. Here is an example
  892. macro:
  893.  
  894.     15f"computer"
  895.  
  896.     Did you realize that this macro would locate the 15th occurence of the
  897. string, computer, after our present cursor position? If there were less than 15
  898. occurences, it would end up on the last one with the message "String not found"
  899. in the title bar. If there were no occurences, the cursor would stay where it
  900. started and you would see the error message. This brings up an important point.
  901. When commands issue an error message (as opposed to an informational message
  902. such as "Block Marked"), the macro aborts AT THAT POINT. In this way, you can
  903. do string searches/replaces and trust the rest of the macro to execute only if
  904. a successful find, for example.
  905.  
  906.     Things that may abort macros are as follows:
  907.  
  908.     Search or Replace functions can't find any more occurences of the search
  909. string.
  910.     The mark has not been set prior to copying or cutting to the clipboard, or
  911. the cursor is at the same position as the mark for these operations.
  912.     There is no more room in the edit buffer to insert characters.
  913.     There is no mem for clipboard operations.
  914.     A file didn't load or save correctly.
  915.     A DOS command failed.
  916.     Tried to insert a Control code that wasn't one of the accepted ascii chars.
  917.     Issued an unknown command.
  918.     The edit buffer couldn't be resized.
  919.     You reached the last or first char in the edit buffer for commands such
  920. FLIP CASE.
  921.     You reached the last or first char in the edit buffer when moving the
  922. cursor (for example, trying to issue a SHIFT-RIGHT when you are already at
  923. the last word in the document).
  924.     You pressed the ESC key when directly entering text via the window title
  925. bar. (i.e. aborted title bar input)
  926.     Protect mode is on, and you tried to alter the text or issue a command
  927. that alters the text.
  928.  
  929.     When any errors cause a macro to fail, you should see an appropriate error
  930. message in the titlebar. A macro that fails without an error msg is probably
  931. incorrectly written (i.e. a syntax error).
  932.  
  933.                                         >>>> IMPORTANT <<<<
  934.  
  935.     You can abort an executing macro at any time by pressing the left (select)
  936. mouse button. (This is the same way that you abort a repeating command).
  937.  
  938.     You can cause parts of a macro to repeat by placing the symbols < > around
  939. the part of the macro that you want to repeat, and placing the number of
  940. repeats before the first <. For example,
  941.  
  942.     5<"Hello ">
  943.  
  944.     This prints "Hello " (minus the quotes) 5 times.
  945.  
  946.     10<f"me"k>2<d[2a]>
  947.  
  948.     This macro does the following 10 times.
  949.     1). Finds the next occurence of "me".
  950.     2). Flips the case (capitalizes) the first letter "m".
  951.     Then it does the following twice.
  952.     1). Deletes a line.
  953.     2). Moves the cursor up 2 lines.
  954.  
  955.     You cannot imbed < >. For example, this is not legal:
  956.  
  957.     2<[a]4<d>>
  958.  
  959.     At this point, you may be starting to squint your eyes at this rather crytic
  960. stream of letters, but you should also notice how much power is packed into
  961. such a small group of characters. This is why disED macros execute FAST...
  962. faster than other forms of interpretive macros...and MUCH MUCH faster than
  963. ARexx. They are also quite compact. If you take the time to study the method,
  964. you'll discover a lot of flexibility...and we haven't even started to discuss
  965. the more powerful features. 
  966.  
  967.     Here's a macro that replaces every instance of "me" with "you" asking you
  968. if you want to exchange each instance. We'll use the QUERY EXCHANGE command
  969. (q). Note that this command needs two strings of input, the search string and
  970. the exchange string.
  971.  
  972.     q"me""you"
  973.  
  974.     Note that each string has its own quotes (to separate it from the other
  975. string). Now when you execute the macro, you'll note that as it finds an
  976. occurence of "me", it displays the prompt:
  977.  
  978.     EXCHANGE (q for quit)? (y or n) >
  979.  
  980.     This is another point. A YES/NO prompt that is issued by a command never
  981. gets its input from a macro. It always goes to you. So never do this:
  982.  
  983.     q"me""you""y"    don't put your y for YES in the macro!
  984.  
  985.     An alternative to placing text inbetween double quotes, is to substitute a
  986. ? (the direct input specifier). The ? tells disED to get the input from you.
  987. For example,
  988.  
  989.     q?"blort"
  990.  
  991.     When you execute this macro, a prompt will appear in the title bar:
  992.  
  993.     Search String >
  994.  
  995.     This is because we substituted a ? in place of the first (search) string in
  996. double quotes. You can type any string in, press return, and then disED will
  997. exchange that string with the second (exchange) string "blort".
  998.  
  999.     Also, you can invoke direct input to enter text manually during macro
  1000. execution. For example,
  1001.  
  1002.     "The answer ="?" inches."[l]
  1003.  
  1004.     This one prints "The answer =" and then kicks into direct input mode. You
  1005. can then enter text, move the cursor about, BACKSPACE, DELETE, press return,
  1006. etc. The mouse pointer will remain as a WAIT pointer to remind you that you
  1007. are still inside of a macro. To exit this mode, you press the ESC key, and
  1008. disED continues on with the rest of the macro. In this case, it prints 
  1009. " inches." wherever you left the cursor, and then goes to the beginning of
  1010. that line. When in direct input mode, you can't use the mouse to move the
  1011. cursor, nor access the menus - just input/edit text and use the cursor keys.
  1012.     In conclusion, anywhere that you might place text inbetween double quotes,
  1013. you can instead place the ? (direct input) specifier to enter chars "on the
  1014. fly".
  1015.  
  1016.     The ? and the <> macro repeats are particularly useful with the exchange
  1017. commands. Let's say that you have a generic form letter, and wherever you need 
  1018. to put new info (names, addresses, phone numbers), you have placed 10 underscores.
  1019. For example, where the person's address would appear at the top of the letter,
  1020. you have the following:
  1021.  
  1022.     __________
  1023.     __________
  1024.     __________
  1025.  
  1026.     Now, study the following macro.
  1027.  
  1028.     [i]100000<f"__________"e"__________"?>
  1029.  
  1030.     When you invoke the macro, it first goes to the start of the file because
  1031. of the [i]. When you use the EXCHANGE command (e) in a macro, it always starts
  1032. the search from the current cursor position, not from the start of the file.
  1033. In this case, since we want to start our search from the beginning of the
  1034. file, we need to first move there. Next, the macro does the following:
  1035.  
  1036.     1). Finds the next occurence of the 10 underscores, placing the cursor there
  1037.         for you to see.
  1038.     2). Displays a prompt in the title bar asking you to enter the exchange
  1039.         string (to exchange for the 10 underscores).
  1040.  
  1041.     Now, for the first exchange string, type in the person's name and press
  1042. RETURN. For example, the file might now read:
  1043.  
  1044.     Jeff Glatt
  1045.     __________
  1046.     __________
  1047.  
  1048.     disED will immediately jump to the next 10 undersores, and prompt for an
  1049. exchange string to replace the underscores. Press CTRL-x to get rid of
  1050. the name, type in the address, and press RETURN. The file might read:
  1051.  
  1052.     Jeff Glatt
  1053.     6 Sycamore Drive East
  1054.     __________
  1055.  
  1056.     disED will jump to the next 10 underscores, and prompt for another exchange
  1057. string, etc. This will continue for 100000 exchanges of the underscores, or
  1058. until disED cannot find anymore occurences of the 10 underscores. If you have
  1059. WORD WRAP on, disED will even reformat your paragraphs as you go along.
  1060.     As you can see, this makes for easy editing of letters and forms.
  1061.  
  1062.  
  1063.     Examples of commands that need arguments are as follows:
  1064.  
  1065. EXCHANGE    needs a search and exchange string.         e" find me ""switch to me"
  1066. QUERY EXCHANGE same as EXCHANGE
  1067. FILTER CONTROL needs a control char and exchange string  `"M"""
  1068.  
  1069.     Note how the FILTER example has nothing "inside" of the 2 quotes for the
  1070. exchange string. When you specify an "empty" exchange string in any of the
  1071. EXCHANGE, QUERY, or FILTER functions, any occurence of the search string is
  1072. removed from the file without substituting any exchange.
  1073.     In direct input, if you simply press return without entering any characters
  1074. at the "Exchange String >" prompt, it will accomplish the same thing. Remember,
  1075. anytime you want to abort title bar input, press ESC.
  1076.  
  1077. LINE JUMP needs a line number        l"30"
  1078.  
  1079.     Remember that all arguments to commands are in quotes, or the ? char!
  1080.  
  1081. FORWARD  SEARCH needs a search string        f"find this"
  1082. BACKWARD SEARCH needs a search string        10b"find 10th one back"
  1083. DOS COMMAND needs a CLI line                    \"dir df0:"
  1084.  
  1085.     The ENTER CONTROL (=) command is a special case. Its argument isn't enclosed
  1086. in quotes. Instead you place the char to be entered after the command. There
  1087. are 2 important control codes you'll enter often. One is a TAB. This is
  1088. specified as =I . The other control code is a RETURN (=J).
  1089.  
  1090.     Here is an example of printing a RETURN, followed by "Hello", followed by
  1091. a TAB, and finally another RETURN.
  1092.  
  1093.     =J"Hello"=I=J
  1094.  
  1095.     If you need to insert a double-quote sign (") in the text, it must be
  1096. followed immediately by a front slash (/). Think of this combination "/
  1097. as a single, double-quote char to be inserted into the text, So this macro,
  1098.  
  1099.    ""/hello"/"
  1100.  
  1101.     will result in the following being inserted into your document:
  1102.  
  1103.    "hello"
  1104.  
  1105.     Now let's talk about accessing disED's menus from macros. You'll notice that
  1106. disED has 3 menus, PROJECT, SETUP, and OPTIONS. PROJECT is menu #1, SETUP is
  1107. menu #2, and OPTIONS is menu #3. Each menu has several items. For example,
  1108. the PROJECT menu has 5 Items with CLEAR being item #1 and QUIT being item #5.
  1109. You'll notice that some items, like SAVE AS, even have subitems. For SAVE AS,
  1110. FILE is subitem #1 and CLIP is subitem #2.
  1111.     A menu event is described in a macro by specifying the menu, item, and
  1112. any subitem number separated by commas and inbetween braces. For example, if
  1113. we want to select WORD WRAP item in the OPTIONS menu, place the following in
  1114. a macro:
  1115.  
  1116.     {3,3,1}
  1117.  
  1118.     The first three means "go to the 3rd menu" which is the options menu. The
  1119. second three means "select the 3rd item" which is the WORD WRAP. The final 1
  1120. stands for the subitem number, which is ignored since WORD WRAP doesn't have
  1121. a subitem. Actually, you don't need the subitem field. If you omit it, a subitem
  1122. of 1 will be assumed. Thus the following macro is equivalent.
  1123.  
  1124.     {3,3}
  1125.  
  1126.     Some menu items/subitems need input which you must supply in quotes after
  1127. the menu event. This is like commands that require input. Examples are
  1128.  
  1129. LOAD FILE needs a filename     {1,2}"df0:s/startup-sequence"
  1130.         This loads the file, Df0:s/startup-sequence, into the edit buffer.
  1131.  
  1132. LOAD CLIP needs a filename     {1,2,2}?
  1133.         Loads the filename that you enter (via the file requester because of the
  1134. ?) into the clipboard. Note that I had to specify the    subitem here, since it's 
  1135. not 1.
  1136.                                         
  1137. SAVE AS FILE needs a filename   {1,4}"ram:tempname"
  1138. SAVE AS CLIP needs a filename   {1,4,2}"df0:extras/poot/myname"
  1139.  
  1140. RESIZE EDIT needs buffer size in bytes    {2,1}"10000"
  1141. TABWIDTH    needs a number 1 to 9         {2,2}"3"
  1142. PAGESCROLL  needs a number 1 to 99            {2,3}"23"
  1143. WRAP MARGIN needs a number 1 to 253            {2,4}"59"
  1144. SAVE CONFIG's CHOOSE DIR needs a filename {2,5,2}"df1:myconfig"
  1145.     Note that SAVE CONFIG BOOT DISK doesn't need an arg  {2,5}
  1146. LOAD CONFIG CHOOSE DIR as above
  1147.     No arg for LOAD CONFIG BOOT DISK
  1148.  
  1149.     None of the items in the options menu need args.
  1150.  
  1151.     Here are a few more useful macros followed by descriptions. Make sure that
  1152. you understand these before trying your own since an incorrectly written macro
  1153. may do some dangerous things what with controlling menus and sending DOS cmds.
  1154.  
  1155.     {1,4}"ram:main.c"\"cc +p ram:main.c"   Saves the edit buffer as ram:main.c
  1156.                                                         and invokes the Manx compiler on it
  1157.  
  1158.     [k]=j=i"move.l"=i        Moves to the end of the current line, starts a new line
  1159.                                 prints a TAB, prints "move.l" followed by another TAB
  1160.  
  1161.     2=I"{"=J3=I=J2=I"};"[ak]    This macro is of good use to C programmers.
  1162.                                         Enter it in a function key, move to a blank
  1163.                                         line, and invoke the function key!
  1164.  
  1165.     m[g]x            This deletes from the current cursor position to the beginning of
  1166.                     the next word. If the cursor is at the first letter of a word,
  1167.                     then that word would be deleted.
  1168.  
  1169.     [h]m[g]x        This deletes the word previous to the word upon which the
  1170.                     cursor now sits.
  1171.  
  1172.     [k]m[l]q"cursor""mouse pointer"[kd]
  1173.                     This macro searches only the current line for all instances
  1174.                     of "cursor" and asks if you want to replace them with "mouse
  1175.                     pointer", then moves to the beginning of the next line if you
  1176.                     did not quit the QUERY EXCHANGE (aborts the macro). Note that
  1177.                     this macro only works if you enable the BLOCK SEARCH feature
  1178.                     of the OPTIONS menu, and turn MARK DISPLAY off.
  1179.  
  1180.     As you may begin to see, the Function keys can be used to "create" new
  1181. commands which disED doesn't normally support as a single keystroke.
  1182.  
  1183.     Whether you enter macros in upper or lower case is inconsequential except
  1184. for those commands that make use of SHIFT variations. For example, here's a
  1185. case-insensitive search for "blort". Notice the upper case F?
  1186.  
  1187.     F"blort"
  1188.  
  1189.     Get the idea?
  1190.  
  1191.  
  1192.     Finally, there are a few commands that can be used from MACROS.
  1193.  
  1194.     ~  this command inserts a DOS delay. The number preceding the command
  1195.         is multiplied by 4, and this is the delay time in 1/50s of a sec.
  1196.         For example,
  1197.  
  1198.          13~
  1199.  
  1200.          would delay for 1 second
  1201.          This command is useful in combination with looped cursor movements for
  1202.          automatic scrolling. For example, the following macro will advance
  1203.          one page every 2 seconds until the end of the document is reached, or
  1204.          the user clicks the left mouse button.
  1205.  
  1206.          100000<25~[f]>
  1207.  
  1208.  
  1209. »»»»»»»»»»»»»»»»»»» ENABLING FEATURES WITHIN MACROS »»»»»»»»»»»»»»»»
  1210. 19). Enabling Features within Macros
  1211.  
  1212.     You can also explicitly turn on or off certain flags from MACROS. To turn
  1213. on a flag, use this command
  1214.  
  1215.     +   This is followed by a letter to indicate which flag to affect
  1216.  
  1217.     To turn off a flag, use this
  1218.  
  1219.     -   Same as the + command, but turns the flag off
  1220.  
  1221.     Here are the letters which affect certain flags.
  1222.  
  1223.     A = OverStrike
  1224.     B = ExtendedOverstrike
  1225.     C = Word Wrap
  1226.     D = Mark Highlight
  1227.     E = Auto-Indent
  1228.     F = Block Search
  1229.     G = Protect
  1230.     H = Hide Cursor
  1231.     I = Hide Printer Codes
  1232.     J = Mouse On
  1233.     L = Extra Wide
  1234.  
  1235.     So, if you wanted to explicitly turn Overstrike on in a macro, do this:
  1236.  
  1237.     +"A"
  1238.  
  1239.     To turn Overstrike off, do this:
  1240.  
  1241.     -"A"
  1242.  
  1243.     You could even turn a flag on, and then off, etc in the same macro.
  1244.  
  1245.     When set (+), the Hide Cursor flag turns off the orange text cursor. When
  1246. clear (-), the Mouse On flag makes the mouse pointer (red arrow) disappear.
  1247.  
  1248.     It should be noted that changing these flags from a MACRO will not update
  1249. the disED OPTIONS menu unless you end your macro with the UPDATE MENU command
  1250. (v). This is generally a good thing to do if your use the + or - commands in
  1251. a macro. At any time, you can manually press CTRL-v to update the OPTIONS
  1252. menu. Do this if you think that some option is not properly checked due to a
  1253. macro changing the flags without updating.
  1254.  
  1255.     You may also manually invoke these as commands. For example, hold down the
  1256. SHIFT and CTRL keys, and press +. The prompt "Flag to Set" will appear. Press
  1257. the L key for Extra Wide.  Hold CTRL and press the - key. You will see "Flag
  1258. to Clear". Press the L key to cancel Extra Wide.
  1259.  
  1260.  
  1261. »»»»»»»»»»»»»»»»»»»»»»»»» LOADING/SAVING MACROS »»»»»»»»»»»»»»»»»»»»»»»»»
  1262. 20). Load/Save Macros
  1263.  
  1264.     Although the config file loads and saves all 30 macros, you can also load or
  1265. save individual macros via the SETUP menu's Macro item. This brings up the file
  1266. requester so that you can choose the filename and destination.
  1267.     For example, to save the macro for the 1st SHIFTED function key:
  1268.  
  1269.     1). Select the SETUP menu's Macro Save.
  1270.     2). When you see the prompt "Press func key to SAVE", hold down the SHIFT
  1271.          key and press F1.
  1272.     3). When you see the prompt "Number of Macros >", simply hit return.
  1273.     4). When the file requester comes up, choose the disk and filename to save
  1274.          to and click on OK.
  1275.  
  1276.     You can also save or load groups of macros. For example, here's how to save
  1277. the macros for Alt-F4, Alt-F5, and Alt-F6.
  1278.  
  1279.     1). Select the SETUP menu's Macro Save.
  1280.     2). When you see the prompt "Press func key to SAVE", hold down the ALT
  1281.          key and press F4. This is the first macro to save in the file.
  1282.     3). When you see the prompt "Number of Macros >1", press BACKSPACE to
  1283.          delete the 1. Enter a 3 since we wish to save 3 function keys starting
  1284.          at Alt-F4. Press RETURN.
  1285.     4). When the file requester comes up, choose the disk and filename to save
  1286.          to and click on OK. Let's call the file "ram:blort".
  1287.  
  1288.     This saves the 3 macros for Alt-F4, Alt-F5, and Alt-F6 in one file. Now,
  1289. let's assume that you wish to load these 3 macros to function keys Shift-F1,
  1290. Shift-F2, and Shift-F3.
  1291.  
  1292.     1). Select the SETUP menu's Macro Load.
  1293.     2). When you see the prompt "Press func key to Load", hold down the SHIFT
  1294.          key and press F1. This is where the first macro in the file is loaded.
  1295.     3). When you see the prompt "Number of Macros >1", press BACKSPACE to
  1296.          delete the 1. Enter a 3 since we wish to load 3 function keys starting
  1297.          at Shift-F1. Press RETURN.
  1298.     4). When the file requester comes up, choose "ram:blort".
  1299.  
  1300.     This will erase whatever macros were in those 3 function keys, and load up
  1301. to 3 macros. Note that groups of macros must be on adjacent keys. You can't
  1302. save F1 and F3 without saving F2 in one file. Likewise, you can't load a macro
  1303. file in F1 and F4 without overwriting F2 and F3.
  1304.  
  1305.     If you wish to load all the macros in a file, but are unsure how many
  1306. macros are in it, specify -1 for "Number of Macros". This will load all macros
  1307. in the file until there are no more macros, or until the function keys up to
  1308. Alt-F10 are filled. Note that if a file has 10 macros, and you start loading
  1309. at Alt-F5, only the first 5 macros in the file will be loaded because Alt-F10
  1310. is the last of the macros.
  1311.  
  1312.     To save all 30 macros in one file, press F1 at the "Press func key to SAVE"
  1313. prompt, and specify 30 for "Number of Macros".
  1314.     To load all 30 macros in one file, follow the same procedure.
  1315.  
  1316.  
  1317. »»»»»»»»»»»»»»»»»»»»»»»»»»»» COLOR CONTROL »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1318. 21). Color Control
  1319.  
  1320.     The COLORS menu item under the setup menu brings up the dissidents' color
  1321. requester which can be used to adjust the colors of the window. The last two
  1322. colors affect the highlighted text and cursor colors, whereas the first two
  1323. colors control the background and regular text colors. The documentation and
  1324. examples for using the color requester in your own programs is available
  1325. from dissidents.
  1326.  
  1327.  
  1328. ««««««««««««««««««««««««««« PRINTER CODES »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1329. 22). Printer Codes
  1330.  
  1331.     Printer codes are a series of letters and numbers that specifically mean
  1332. something to your printer. They are commands that can tell your printer to
  1333. do such things as print text in italics, or change the color of the text
  1334. (provided that your printer supports this). The first character of a printer
  1335. code is always an escape character. This is hex $1B which when viewed in disED
  1336. is a reverse colored, right bracket ( [ ) character. This is a control code,
  1337. so to enter it into your document you first press CTRL and = keys, release
  1338. them, and follow by pressing the [ key. You should then see the reverse [.
  1339.     What comes after this escape character depends upon which code you desire.
  1340. For example, the code to set italics is the escape character followed imme-
  1341. diately by these 3 characters:
  1342.  
  1343.     [3m
  1344.  
  1345.     Note that the first char is a right bracket, but not an escape character
  1346. because you do not press CTRL and = before entering it. If you were to send
  1347. this code to your printer, all subsequent text printed out would be in
  1348. italic print.
  1349.     Normally, all printer codes are displayed wherever they occur in the
  1350. text, but if you turn on "Hide Codes" from the OPTIONS menu, disED will not
  1351. display any printer codes. Instead, disED will attempt to use the codes if
  1352. applicable, and ignore them otherwise. They still remain in your document,
  1353. but you can't see them. You will probably see the result of the codes, which
  1354. is how your printer would render such a document. disED understands the
  1355. following codes:
  1356.  
  1357.          Boldface On
  1358.          Italics On
  1359.          Underline On
  1360.          Normal char set (The above 3 off, and default colors)
  1361.  
  1362.     nm    The foreground (text) color where the "n" is replaced by
  1363.                 the color # you desire. For example,  sets the text
  1364.                 color to color #5 (i.e. the 6th color box of the color
  1365.                 requester).
  1366.  
  1367.     nm    The background color where the "n" is replaced by
  1368.                 the color # you desire. For example,  sets the background
  1369.                 color to color #0 (i.e. the first color box of the color
  1370.                 requester).
  1371.  
  1372.     If you are reading this document in disED, then you should see these
  1373. printer codes. Now select "Hide Codes" from the OPTIONS menu. Notice how
  1374. you no longer see the printer codes, but the text after the printer codes
  1375. is affected. For example, the words "Italics On" occur after the Italics
  1376. On printer code, so they are rendered in italics. Select the Hide Codes
  1377. menu item several times to understand what is happening.
  1378.     Turn off "Hide Codes" now (i.e. no check mark).
  1379.     If you want to imbed printer codes in your document, there are a few
  1380. techniques that will improve the way the document looks in disED. First,
  1381. insert the printer code directly before any text that you wish to affect.
  1382. For example:
  1383.  
  1384.     Underline me
  1385.  
  1386.     would underline the words "Underline me" and continue underlining through
  1387. the remainder of the document. If you only want to underline those 2 words,
  1388. you need to cancel the underline immediately after the "me". You do this
  1389. with the Normal char set code. 
  1390.  
  1391.     Underline me
  1392.  
  1393.     The normal char set code also cancels Boldface and Italics as well as
  1394. returns the colors to defaults of foreground=1 and background=0.
  1395.  
  1396.     Study the following line. Try to imagine what it will look like with
  1397. Hide Codes on, then enable the feature.
  1398.  
  1399.        I'm starting to understand this.
  1400.  
  1401.     When "Hide Codes" is on, and you are moving the cursor through the docu-
  1402. ment, the cursor key needs to be tapped twice to pass over a hidden printer
  1403. code. For example, enable the feature, move the cursor to the start of the
  1404. line "I'm starting to understand this.", and press the right cursor key
  1405. repeatedly. Note that when a printer code is encountered, the cursor doesn't
  1406. move forward until after the second press. Since the word "starting" has
  1407. several printer codes before it, the cursor appears "stuck" at the beginning
  1408. of the word for several presses. This is so that you can always tell where
  1409. printer codes are, and also allows you to step over it with the second key
  1410. press. The same thing is true when you cursor to the left (backwards).
  1411.     Turn off "Hide Codes" now.
  1412.     Sometimes, when you cursor backwards in the document (toward the top of
  1413. the window), certain lines will be redrawn without the proper printer code
  1414. effects. This is because printer codes are not designed to be read backwards
  1415. and in an effort to minimize overhead, disED does not make extraordinary
  1416. effort to do so. So, to check a document for proper formatting, always back
  1417. up before the area (printer code) you wish to check, and cursor forward.
  1418.     The best approach is to write your text without any printer codes, setting
  1419. margins and formatting text as desired. Then, insert printer codes in one
  1420. of 2 manners.
  1421.  
  1422.     1). To manually enter a code, have "Hide Codes" off so you can see what
  1423.          you are typing. (Make sure that Word Wrap is off.) Temporarily, enable
  1424.          "Hide Codes" to check the result and then disable again.
  1425.  
  1426.     2). Leave "Hide Codes" on and program each function key to be one of the
  1427.          codes you wish to insert. When you find where you want to insert a
  1428.          code, press the appropriate function key. Do not attempt to manually
  1429.          enter codes when "Hide Codes" is on, because as you enter the ESC
  1430.          and "[" char, the editor may misinterpret subsequent text as part of
  1431.          a printer code.
  1432.  
  1433.  
  1434.     When in EXTRA WIDE text mode, disEd also "hides" (displays) the following
  1435. sub and super script printer codes.
  1436.  
  1437.     v SuperScript Off
  1438.     v SuperScript On
  1439.     v SubScript Off
  1440.     v SubScript On
  1441.     v Normalize the line (i.e. cancel subscript or superscript)
  1442.  
  1443.     Superscript letters are raised slightly higher than surrounding, normal
  1444. text. Subscript letters are lowered.
  1445.     disED ignores these codes when not in EXTRA WIDE mode because there is not
  1446. enough room in between lines to show sub and super scripts. Enable HIDE CODES
  1447. and EXTRA WIDE, and see the effect on the following lines.
  1448.  
  1449.     Rv12 v* I = Vvtv  An example of OHMS LAWv1v
  1450.  
  1451. v1v This is a footnote.
  1452.  
  1453.  
  1454. »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» FINAL NOTES »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1455. 23). Final Notes
  1456.  
  1457.     To use the disED editor, you must copy the following files to the libs
  1458. drawer of your boot disk:
  1459.  
  1460.     text_ed.library
  1461.     disED.library
  1462.     requester.library
  1463.     color.library    (only if you want to be able to change the window colors).
  1464.  
  1465.     For WorkBench users, you should click on the "Click Me First" icon, once
  1466. only.
  1467.     CLI users can CD to the dir with "InstallLibs" in it and execute this
  1468. script.
  1469.  
  1470.     If you've ever worked on large files in some text editors, you may have
  1471. noticed that inputting chars is excruciatingly slow. disEd buffers the current
  1472. line at certain times, thus making it appear as if each line is part of a
  1473. very small file. This greatly reduces the impression that the amount of text
  1474. being manipulated is unwieldy, yet makes for a very memory efficient program.
  1475. In fact, you may be surprised that even with the FileIO and text_ed libraries
  1476. considered (which can be used by a great many applications), the disED editor
  1477. is not that much larger than ED. At about 29K total, it certainly is smaller
  1478. than those EMACS things, and considering the amount of features, it should win
  1479. a place on any development disk.
  1480.     The disED front-end to the library is not re-entrant, even though the
  1481. library itself is. This means that for every invocation of disED, about 6K of
  1482. code and data is added. This may actually result in little more memory use than
  1483. a fully re-entrant editor since disED does not need to make copies of menus and
  1484. other structures when loaded (unlike most re-entrant programs). Do not make
  1485. disED resident!
  1486.     Note that you can start a new editor from within disED by invoking the
  1487. DOS COMMAND CTRL-\, and typing
  1488.  
  1489.     run disED
  1490.  
  1491.     at the title bar prompt, or by using the equivalent macro in a function key
  1492.  
  1493.     \"run disED"
  1494.  
  1495.  
  1496. »»»»»»»»»»»»»»»»»»»»»»»»»»»» EDITOR VERSIONS »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1497. 24). Editor Versions
  1498.  
  1499.     An enhanced version of disED, called deluxED, is also included. This editor
  1500. has additional features that CLI users or programmers may not need. Because of
  1501. these extra features, deluxED is slightly larger than disED on disk. When
  1502. loaded, deluxED also uses up more memory because it opens up an 8 color, custom
  1503. screen. All of the deluxED editors open on this one screen, but with different
  1504. window colors so that you can easily distinguish between them.
  1505.     All of the commands of disED are supported, with the addition of menus to
  1506. access the commands. In this way, you may use either the CTRL key combo or a
  1507. menu to implement any command. Each menu item shows the CTRL key combo that
  1508. invokes the command. For example, the "Delete Line" menu item looks like this:
  1509.  
  1510.         Delete Line   ^d
  1511.  
  1512.     The ^d means to hold down the CTRL key while you press d. This version is
  1513. useful for when you are starting to learn the disED command set.
  1514.  
  1515.     Each item in the Strings menu has two CTRL combos listed. For example, the
  1516. EXCHANGE item is:
  1517.  
  1518.     Exchange        ^e/^E
  1519.  
  1520.     The first combo (^e) is a case-sensitive search and exchange.
  1521.     The second combo (^E) is for the case-insensitive search and exchange.
  1522.  
  1523.     Also, a version of deluxED, called deluxEDplus has even more features.
  1524. Primarily, this version allows you to fully re-configure the command set.
  1525. You can set up the editor so that an EMACS, WORDSTAR, or other command set
  1526. is implemented. This is provided for those unfortunate souls who are still
  1527. using an obsolete editor at work, and want to duplicate that environment at
  1528. home. They haven't yet realized that the time it takes to adjust to more
  1529. efficient software will be more than offset by increased productivity.
  1530.  
  1531.     deluxEDplus has an additional item under the SETUP menu, "Rebind Key".
  1532. Select this item and you will be prompted to choose the menu item to bind
  1533. to a key sequence. For example, let's say that we wish to invoke the "Set
  1534. Mark" item by pressing the ESC, A, and J keys. Here is the procedure:
  1535.  
  1536.     1). Select "Rebind key" under the SETUP menu. The title bar reads
  1537.          "Select the Menu Item to rebind"
  1538.     2). Select the "Set Mark" item under the CLIP menu. The title bar reads
  1539.          "Press the new key sequence, and then release the keys"
  1540.     3). Press and hold down the ESC key. Press the A, and then the J key. Re-
  1541.          lease the ESC key.
  1542.          The title bar should read "Rebind OK" if all went well. Now, when
  1543.          you hold ESC, then press A, and J, the mark should be set.
  1544.  
  1545.     There are a few rules in choosing the key sequence. The first key must be
  1546. the ESC, CTRL, right AMIGA, or left AMIGA key. You may then press up to 3 other
  1547. keys (except ESC only allows 2 other keys). You may even press the ALT or SHIFT
  1548. keys as well.
  1549.  
  1550.     You may even combine ESC, CTRL, and the AMIGA keys together in a command
  1551. sequence. For example, a command can be invoked with this sequence:
  1552.  
  1553.     CTRL, ESC, SHIFT, right AMIGA, S, P, L
  1554.  
  1555.     Wonderful! This is even more inefficient than the editor you may be using
  1556. at work!  And if that's what you had learned, you wouldn't want to change for
  1557. any reason, right?
  1558.  
  1559.     Note that the CTRL, ESC, SHIFT, AMIGA, and ALT keys are not part of the 3
  1560. key limit.
  1561.  
  1562.     If you try to bind the same key sequence to more than 1 menu item, the
  1563. highest priority menu item will overide the other. Highest priority items
  1564. are in the Project menu, and subsequent menus have lower priority. When
  1565. creating a new command set, it is best to start with the first item in the
  1566. Project menu, and continue all the way to the last item in the Function menu.
  1567. Note that you can only rebind the subitems of a menu item if it has subitems.
  1568. For example, you cannot rebind the "Save AS" item, but you can rebind its
  1569. two subitems "File" and "Clip", one at a time.
  1570.  
  1571.     Also note that one command cannot contain another command sequence within
  1572. it. For example, if you define GOTO LINE as CTRL-g, then you cannot define
  1573. SWAP POSITION as CTRL-x-g.
  1574.  
  1575.     There are two config files that implement EMACS and WORDSTAR command sets.
  1576. Some commands are not directly supported by deluxEDplus, so Macros were made
  1577. for the ALT-Function keys. deluxEDplus has a FUNCTION menu which allows you
  1578. to bind Macros for the 10 ALT-Function keys to other keys. In this way, the
  1579. other command sets can be better simulated. You still have the 10 regular and
  1580. SHIFTED function keys for Macros, although these cannot be rebound to other
  1581. key combos. If you change any one of the ALT-function macros, that will also
  1582. change the operation of any command sequence bound to it.
  1583.  
  1584.     Note that the rebound keys are saved in a configuration file, so be sure
  1585. to save a config file after rebinding.
  1586.  
  1587.  
  1588. »»»»»»»»»»»»»»»»»»»»»»»»»» WHAT'S AVAILABLE »»»»»»»»»»»»»»»»»»»»»»»»»»»
  1589. 25). What's Available
  1590.  
  1591.     There are several dissidents libraries out including the FileIO requester
  1592. library, a color requester library, an ilbm/iff reader/writer library, our
  1593. 16-bit sampled sound reader/writer lib (SAMP), and now the text_ed library.
  1594. You should be able to locate the libs, docs, includes, and examples in C,
  1595. assembly, and AmigaBasic on various Fish disks. dissidents has now made
  1596. available a disk that contains all of the latest versions of the libraries
  1597. along with all documentation. Also available (by request) are a few perks
  1598. such as post-script versions of the doc files. You know, the actual chapters
  1599. right out of the SpeakerSim and Midi SampleWrench manuals as laid out in
  1600. Professional Page. We are making these available as a courtesy to fellow amiga
  1601. programmers and are not trying get rich off of this deal. If you are interested
  1602. in obtaining copies of the "dissidents custom libraries disk", contact
  1603.  
  1604.     dissidents
  1605.     730 Dawes Avenue
  1606.     Utica, NY 13502
  1607.    (315) 797-0343
  1608.  
  1609.     or
  1610.  
  1611.     Jeff Glatt
  1612.     6 Sycamore Drive East
  1613.     New Hartford, NY 13413
  1614.